package com.huangyi;

public class Main {
    public static void main(String[] args) {
       //提莫攻击
        class Solution {
            public int findPoisonedDuration(int[] timeSeries, int duration) {
                int n = timeSeries.length;
                if (n == 0) return 0;

                int total = 0;
                for (int i = 0; i < n - 1; i++) {
                    total += Math.min(timeSeries[i + 1] - timeSeries[i], duration);
                }
                total += duration; // 最后一次攻击的完整中毒时间
                return total;
            }
        }

        //Z字形变换
        class Solution2 {
            public String convert(String s, int numRows) {
                int n = s.length();
                if(numRows == 1) return s; // 特殊情况

                StringBuilder ret = new StringBuilder();
                int d = 2*numRows - 2; // 周期长度

                // 第一行
                for(int i = 0; i < n; i += d){
                    ret.append(s.charAt(i));
                }

                // 中间行
                for (int i = 1; i < numRows - 1; i++) {
                    for (int j = 0; j + i < n; j += d) {
                        ret.append(s.charAt(j + i));      // 竖直字符
                        if (j + d - i < n) {              // 斜向字符
                            ret.append(s.charAt(j + d - i));
                        }
                    }
                }

                // 最后一行
                for(int j = numRows - 1; j < n; j += d){
                    ret.append(s.charAt(j));
                }

                return ret.toString();
            }
        }
    }
}